package ade.prime.activity;

import android.content.Context;
import android.content.res.AssetManager;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * Défini le contenu du la boite de dialogue pour l'affichage de la licence.
 * Le contenu est un simple texte à défilement importé du fichier licence.txt présent dans le dossier /asserts.
 */
public class LicenseDialog extends DialogPreference {
    private final Context context;

    /**
     * {@inheritedDoc }
     */
    public LicenseDialog(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
    }

    /**
     * {@inheritedDoc }
     */
    @Override
    protected void onDialogClosed(boolean positiveResult) {
        super.onDialogClosed(positiveResult);
        persistBoolean(positiveResult);
    }
    
    /**
     * {@inheritedDoc }
     */
     @Override
     protected View onCreateDialogView() {
         View view = LayoutInflater.from(context).inflate(R.layout.license,null);

         TextView tv = (TextView) view.findViewById(R.id.text);
            String texte = this.ReadLicence(context);
            if (texte != null)
                tv.setText(texte);

            return view; 
            
     } 

     /**
      * Lit le fichier de licence et retourne une chaine de caractères, contenu du fichier.
      * @param context
      * @return retourne une chaine de caractères, contenu du fichier
      */
     public String ReadLicence(Context context){
        InputStream fIn = null;
        InputStreamReader isr = null;
 
        char[] inputBuffer = new char[32];
        StringBuilder data = new StringBuilder();
 
        try{
            int i = 0;
            AssetManager am = context.getAssets();
            fIn = am.open("licence.txt");
            isr = new InputStreamReader(fIn);
            while (i != -1) {
                i = isr.read(inputBuffer);
                data.append(new String(inputBuffer));
                inputBuffer = new char[32];
            }
            }
            catch (Exception e) {
                  Toast.makeText(context, "Licence introuvable !",Toast.LENGTH_SHORT).show();
            }

            return data.toString();
       }
}
